package edu.hubu.talentmanagementsystem.model.ext;


import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import edu.hubu.talentmanagementsystem.common.SensitiveField;
import edu.hubu.talentmanagementsystem.model.Model;

import java.io.Serializable;

/**
 * <p>
 * 公司表
 * </p>
 *
 * @author moonlan
 * @since 2021-03-13
 */
@TableName("company")
public class Company extends Model<Company> implements Serializable {


    /**
     * 公司ID
     */
    @TableId(value = "company_id", type = IdType.AUTO)
    private Integer companyId;

    /**
     * 公司编码
     */
    @TableField("company_num")
    private String companyNum;

    /**
     * 公司管理员密码
     */
    @TableField("company_admin_pwd")
    private String companyAdminPwd;

    /**
     * 公司名称
     */
    @TableField("company_name")
    private String companyName;

    /**
     * 公司地点
     */
    @TableField("company_address")
    private String companyAddress;

    /**
     * 公司电话
     */
    @TableField("company_phone_number")
    private String companyPhoneNumber;

    /**
     * 公司邮箱
     */
    @TableField("company_email")
    private String companyEmail;

    /**
     * 公司规模
     */
    @TableField("company_scale")
    private Integer companyScale;

    @TableField("company_logo_id")
    private Integer companyLogoId;


    @TableField("company_big_tag")
    private Integer companyBigTag;

    @TableField("company_small_tag")
    private Integer companySmallTag;

    @TableField(exist = false)
    private Resource resource;

    @TableField(exist = false)
    private PositionBigTag positionBigTag;

    @TableField(exist = false)
    private PositionSmallTag positionSmallTag;

    public Integer getCompanyBigTag() {
        return companyBigTag;
    }

    public Company setCompanyBigTag(Integer companyBigTag) {
        this.companyBigTag = companyBigTag;
        return this;
    }

    public Integer getCompanySmallTag() {
        return companySmallTag;
    }

    public Company setCompanySmallTag(Integer companySmallTag) {
        this.companySmallTag = companySmallTag;
        return this;
    }

    public PositionBigTag getPositionBigTag() {
        return positionBigTag;
    }

    public Company setPositionBigTag(PositionBigTag positionBigTag) {
        this.positionBigTag = positionBigTag;
        return this;
    }

    public PositionSmallTag getPositionSmallTag() {
        return positionSmallTag;
    }

    public Company setPositionSmallTag(PositionSmallTag positionSmallTag) {
        this.positionSmallTag = positionSmallTag;
        return this;
    }

    public Resource getResource() {
        return resource;
    }

    public void setResource(Resource resource) {
        this.resource = resource;
    }

    public Integer getCompanyLogoId() {
        return companyLogoId;
    }

    public void setCompanyLogoId(Integer companyLogoId) {
        this.companyLogoId = companyLogoId;
    }

    @TableField("company_role_id")
    private Integer companyRoleId;

    public Integer getCompanyRoleId() {
        return companyRoleId;
    }

    public void setCompanyRoleId(Integer companyRoleId) {
        this.companyRoleId = companyRoleId;
    }

    @TableField(exist = false)
    private Role role;

    public Role getRole() {
        return role;
    }

    public Company setRole(Role role) {
        this.role = role;
        return this;
    }

    /**
     * 公司介绍
     */
    @TableField("company_desc")
    private String companyDesc;

    /**
     * 公司是否被拉黑
     */
    @TableField("company_is_enable")
    private Boolean companyIsEnable;

    public Integer getCompanyId() {
        return companyId;
    }

    public Company setCompanyId(Integer companyId) {
        this.companyId = companyId;
        return this;
    }

    public String getCompanyNum() {
        return companyNum;
    }

    public Company setCompanyNum(String companyNum) {
        this.companyNum = companyNum;
        return this;
    }

    @SensitiveField
    public String getCompanyAdminPwd() {
        return companyAdminPwd;
    }

    public Company setCompanyAdminPwd(String companyAdminPwd) {
        this.companyAdminPwd = companyAdminPwd;
        return this;
    }

    public String getCompanyName() {
        return companyName;
    }

    public Company setCompanyName(String companyName) {
        this.companyName = companyName;
        return this;
    }

    public String getCompanyAddress() {
        return companyAddress;
    }

    public Company setCompanyAddress(String companyAddress) {
        this.companyAddress = companyAddress;
        return this;
    }

    public String getCompanyPhoneNumber() {
        return companyPhoneNumber;
    }

    public Company setCompanyPhoneNumber(String companyPhoneNumber) {
        this.companyPhoneNumber = companyPhoneNumber;
        return this;
    }

    public String getCompanyEmail() {
        return companyEmail;
    }

    public Company setCompanyEmail(String companyEmail) {
        this.companyEmail = companyEmail;
        return this;
    }

    public Integer getCompanyScale() {
        return companyScale;
    }

    public Company setCompanyScale(Integer companyScale) {
        this.companyScale = companyScale;
        return this;
    }

    public String getCompanyDesc() {
        return companyDesc;
    }

    public Company setCompanyDesc(String companyDesc) {
        this.companyDesc = companyDesc;
        return this;
    }

    public Boolean getCompanyIsEnable() {
        return companyIsEnable;
    }

    public Company setCompanyIsEnable(Boolean companyIsEnable) {
        this.companyIsEnable = companyIsEnable;
        return this;
    }

    @Override
    public String toString() {
        return "Company{" +
                "companyId=" + companyId +
                ", companyNum=" + companyNum +
                ", companyAdminPwd=" + companyAdminPwd +
                ", companyName=" + companyName +
                ", companyAddress=" + companyAddress +
                ", companyPhoneNumber=" + companyPhoneNumber +
                ", companyEmail=" + companyEmail +
                ", companyScale=" + companyScale +
                ", companyDesc=" + companyDesc +
                ", companyIsEnable=" + companyIsEnable +
                "}";
    }
}
